[pull] master from mattermost:master - #867
Merged
Merged
Conversation
…n images, table wrapping, oversized icons) (#37669) * Fix leftover RST/malformed MDX admonition syntax Docusaurus/MDX admonitions use `:::type[Title]` for a custom title, not the old Sphinx `.. type::` RST directive or a bare `:::type Title` (which Docusaurus renders as a type with the literal text "Title" appended, not a real title). Fixed 12 files using the malformed `:::type Title` form, plus two leftover `.. image::` RST directives (converted to `<img>` tags, covered in the images commit's file but noted here since it's the same admonition-adjacent cleanup pass) in manage-your-security-preferences.mdx. Co-authored-by: Cursor <cursoragent@cursor.com> * Fix broken images: port missing screenshots from legacy docs repo 26 files referenced screenshots/diagrams via relative paths (`../images/x`, `../../images/x`) that don't resolve anywhere in this repo — the assets were never migrated during the Sphinx-to-Docusaurus conversion, and in one file (ad-ldap-groups-synchronization.mdx) the filenames were also corrupted with a leftover `%0A` (encoded newline) prefix from the conversion. Ported the 46 missing image files from mattermost/docs (source/images/) into docs/site/static/images/ — the location every other working image reference in this repo already resolves against — and rewrote every relative reference to the root-absolute `/images/<file>` form used elsewhere in these same files (e.g. server-logout-indicator.png). Verified via a full scan: all 680 `/images/...` references across docs/main now resolve to a real file on disk. Co-authored-by: Cursor <cursoragent@cursor.com> * Fix oversized/broken checkmark icons in EMM config table The EMM configuration reference table used bare <img src="../../_static/images/check-circle-green.svg" /> for ~24 "supported" checkmarks — a legacy Sphinx path that doesn't exist in this repo (broken image) and, with no explicit size, would render at native SVG size rather than as a small inline checkmark (oversized icon). Replaced with the actual migrated asset (/img/ui/checkmark.svg) plus explicit width/height and alt text. Co-authored-by: Cursor <cursoragent@cursor.com> * Fix wide comparison table wrapping on the plans page The plans/pricing table (7 columns: Feature Category + 5 editions + Available From) had no table-layout or column-width rules, so the first ("Feature Category") column — which holds long, wrapping prose — ended up roughly the same rendered width as the edition columns, which only ever hold a short checkmark or version string. That forced every row onto several wrapped lines. Added `table-layout: fixed` with explicit per-column widths (28% category / 10% per edition / 22% for "Available From") so the category column gets the space it needs. Co-authored-by: Cursor <cursoragent@cursor.com> * Fix images broken on non-root baseUrl deployments (PR previews) Docusaurus only rewrites image URLs for the site's baseUrl when using markdown image syntax (``) — that gets compiled to a webpack require() call. A raw HTML `<img src="/images/x.png" />` tag is left as a literal string, which the browser resolves from the domain root, ignoring baseUrl entirely. On production baseUrl is "/", so this silently worked by coincidence. But PR preview builds set BASE_URL to "/mattermost/pr-<N>/" (.github/workflows/docs-preview-template.yml), so every raw <img src="/images/..."> or src="/img/..."> 404s specifically on preview deployments — which is why images added/fixed earlier in this branch still showed as broken in the PR's docs preview. This is a pre-existing, repo-wide pattern (503 raw <img> tags across 103 files, most untouched by this PR otherwise) rather than something introduced by earlier commits here — those commits just added a few more instances of an existing broken pattern. Fixed all of them by importing @docusaurus/useBaseUrl and wrapping src={useBaseUrl('/images/...')} so the URL is correctly rewritten for whatever baseUrl the site is built with. Verified: all 503 useBaseUrl(...) calls resolve to a real file under docs/site/static, and every modified file was checked with @mdx-js/mdx compile() to confirm no syntax breakage from the added import statements. Co-authored-by: Cursor <cursoragent@cursor.com> * Fix leftover RST list/table markup in notifications docs - mobile-troubleshooting.mdx: replace leading blockquote markers (>) under step 3 with list-content indentation so the nested numbered substeps and screenshots render as part of the ordered list instead of a blockquote. - manage-your-notifications.mdx: replace the mangled blockquote/dl header row (with literal RST separator runs and stray | and + characters) with a proper <thead><th scope="col"> row, and restore the "Icon badge (dot)" row as a normal <tbody> row. Co-authored-by: Cursor <cursoragent@cursor.com> * Rebuild mangled security preferences table from RST source Cross-checked against the legacy RST source to reconstruct the table correctly: proper <thead>/<th scope="col"> header, real ordered/ unordered lists instead of pipe-joined literal text, working internal links in place of unresolved mm-ref: URIs, and a <Note> block for the sign-in method callout (previously rendered as literal ".. note::" text). Also dropped a stray phantom third table column left over from conversion. Co-authored-by: Cursor <cursoragent@cursor.com> * Fix typos and remaining markup issues in collaborate/notifications docs - message-priority.mdx: fix "acknowlegement" typo, add missing "the" before "message" in the acknowledgement description. - organize-conversations.mdx: split the Tip's two bullets onto separate lines and drop the escaped leading hyphen that was preventing the first item from rendering as a list. - organize-using-custom-user-groups.mdx: fix "preferreed" typo and add missing "to" in the archived-group restoration instructions. - schedule-messages.mdx: fix "dislays" typo. - manage-your-notifications.mdx: replace the leftover dl/dt/dd/ line-block markup in the Push notifications row with a plain anchor link, matching the Web/Desktop cells elsewhere in the table. Co-authored-by: Cursor <cursoragent@cursor.com> --------- Co-authored-by: Cursor <cursoragent@cursor.com>
…#37673) * docs: fix broken mm-ref:/mm-doc: placeholder links from RST migration During the Sphinx/RST-to-Docusaurus/MDX conversion, every RST :ref: and :doc: cross-reference role was converted into a dead link using a made-up, non-functional URI scheme (mm-ref:/mm-doc:) instead of a real path, leaving ~228 broken links across ~20 docs/main files. Decode each payload and resolve it to a working relative link, computing the target heading's anchor slug (via github-slugger, matching Docusaurus's own heading-id algorithm) where the original :ref: pointed at a specific section. A few links with no confidently matching target are marked with a TODO comment for follow-up. Co-authored-by: Cursor <cursoragent@cursor.com> * Resolve remaining ESR link TODOs and rebuild mangled version table The three mm-ref: TODOs left by the previous pass pointed at RST :ref: labels (release-v9-11-extended-support-release, etc.) that exist as real headings in unsupported-legacy-releases.mdx and mattermost-v10-changelog.mdx, not in release-policy.mdx. Resolved them to the correct anchors. While fixing the links, also rebuilt the surrounding table: it was the same blockquote/dl/dt-with-literal-RST-separators artifact seen elsewhere in the RST-to-MDX migration, plus a phantom 4th table column. Cross-checked against the legacy RST source (server-deployment-planning.rst) to confirm it's really 3 columns. Co-authored-by: Cursor <cursoragent@cursor.com> * Fix anchor over-extension and truncated RST fragments in table cells - authentication-configuration-settings.mdx / site-configuration- settings.mdx: the migrated doc links wrapped far more text than intended ("multi-factor authentication (MFA) | - System Config path: ..." / "threaded discussions | - System Config path: ..."). Closed the anchor immediately after the link label so the System Config path text renders as plain text outside the link, matching the pattern used elsewhere in these tables. - client-availability.mdx: three table cells (Preview image links, Join existing team, Create a new team) retained truncated RST :ref: label fragments ("ments>`__", "eam>`__", "team>`__") left over from the conversion. Removed them - the checkmark cells already carry the correct support indicators, cross-checked against the legacy RST source table. Co-authored-by: Cursor <cursoragent@cursor.com> * Fix stray absolute doc link and leaked table separators - important-upgrade-notes.mdx: the first Compliance Export doc link in the v10.5 row pointed at the absolute docs.mattermost.com/*.html URL instead of the site-relative canonical path (the second link in the same cell already used the correct path). - client-availability.mdx: 15 feature-name links across the Messages, Channels, Teams, Playbooks, Calls, Authentication, and Other tables had leftover RST table-separator artifacts ("| | | |") bleeding into the anchor text. Removed them so the link boundary matches the correctly-converted rows elsewhere in the same tables. Co-authored-by: Cursor <cursoragent@cursor.com> --------- Co-authored-by: Cursor <cursoragent@cursor.com>
…om legacy source (#37674) * Remove unreviewed IA-redesign content, restructure air-gapped docs from legacy source The docs-experimental -> monorepo migration (#37330) brought in draft scaffolding from a proposed IA redesign that was never reviewed and has no basis in the legacy Sphinx docs or the actual product. This removes it and, where a real legacy page existed, rebuilds the content from that source instead. Removed (no legacy-docs equivalent, entirely speculative): - administration-guide/upgrade/upgrade-v11.mdx - a per-major-version upgrade guide "stub" with literal placeholder text ("*Per-release, version-specific procedure authored by release-management team.*"); this per-version guide concept never existed in the old docs. - deployment-guide/air-gapped-operations/offline-license-activation.mdx - fabricated procedure and config-setting claims with no legacy source and no verification against the product. - security-guide/compliance-frameworks/fedramp-moderate.mdx - a live "in-process" FedRAMP authorization badge and NIST 800-53 control mapping table that was never reviewed or signed off by compliance/ legal. Restructured from the legacy air-gapped-deployment.rst content (real, previously-published guidance, just reorganized into smaller pages): - air-gapped-operations/index.mdx - high-level overview, dropped the invented "Persona scope" note, "Roadmap (Phase 2)" section, and unverified deployment contexts (DoD SIPRNet/JWICS, sovereign-cloud, tactical-edge/DDIL) that had no basis in the legacy docs. - air-gapped-operations/quick-start-runbook.mdx - replaced the fabricated (and off-by-one) "12 steps" with the legacy RST's actual 6-step deployment overview. - air-gapped-operations/mirror-package-repositories.mdx - replaced invented artifact/registry guidance with the legacy Bill of Materials, Plugins, SSL/TLS, and registry-mirroring setup content. - air-gapped-operations/disable-phone-home-features.mdx - replaced the invented "phone-home inventory" table (unverified config.json key names) with the legacy doc's actual per-feature configuration guidance (push notifications, email, link previews, GIF picker, notices, telemetry). Also fixed every cross-reference broken by the above (persona landing pages under for/, the compliance-frameworks index, DISA STIG and DoD IL4/IL5 pages, and a few deployment-guide pages that linked to the removed/renamed content). The broader for/ persona-landing-page tree and the DISA STIG / DoD IL4-5 compliance pages still reference the same unreviewed IA redesign and need a follow-up pass, but are out of scope for this change. Co-authored-by: Cursor <cursoragent@cursor.com> * Soften DISA STIG customer-responsibility wording on DoD IL4/IL5 link "Validated configuration guidance" overstated what the linked DoD IL4/IL5 page actually provides (a documented control mapping, not a third-party-validated one). Matches the "documents the gap honestly" framing already used elsewhere on these compliance pages. Co-authored-by: Cursor <cursoragent@cursor.com> --------- Co-authored-by: Cursor <cursoragent@cursor.com>
… signal (#37666) * Remove/restyle "vibe coded" yellow left-border signal on docs cards/blocks Nick Misasi flagged in the "Docs Revamp - Feedback" channel (2026-07-22/23): "Docs look great! Left border like this is a pretty common 'vibe coder' signal. Wonder if we should just remove it? I see the yellow left border in a few other places too. Regardless of whether its AI built or not, I don't know if that signal is the first thing we want a reader to see" tokens.css already documents --mm-color-marigold as "accent — CTAs only, used sparingly", so this restores that contract: marigold left borders on static, non-CTA content blocks/cards are replaced with the site's primary denim brand color, while genuinely deliberate marigold accents (navbar underline, CTA pill, section rule, h2 rule accent, copy-button hover) are left untouched. - CardGrid: removed the always-on marigold left border from the card grid (the "For Administrators"/"For Developers" cards from the screenshot); hover state now uses a neutral border-strong color instead of marigold. - PlanAvailability: .plan badge left border marigold -> denim, matching the Edition/Deployment/Attestation badge family. - EditionAvailability: dropped the marigold .edition variant override so Edition and Deployment badges share the same denim left edge. - IMEDiagram: intro-panel (Application/Integration/Deployment) left border and icon color marigold -> denim, with a lighter denim tint in dark mode. - DeploymentArchitectureBuilder: .miniFlow/.flow protocol chips left border marigold -> denim (the per-role box legend, which uses marigold as one of several deliberate type colors, is left unchanged). - custom.css: blockquote left border marigold -> border-strong (neutral), since it applied unconditionally to every blockquote site-wide. Co-authored-by: Cursor <cursoragent@cursor.com> * Restyle CardGrid nav cards after removing marigold left border Replace the flat left-border accent with elevation cues (rounded corners, resting/hover shadow, background tint on hover, and a circular arrow/icon affordance) so cards still read as clickable without the decorative bar. Fix dark-mode card surface, which was hardcoded to a navy shade nearly identical to the page background. Co-authored-by: Cursor <cursoragent@cursor.com> * Fix invisible dark-mode left border on Plan/Edition badges border-left-color was still hardcoded to the dark denim brand color in [data-theme='dark'], blending into the near-black background. Add the lighter --mm-denim-300 override used elsewhere on this branch (IMEDiagram, DeploymentArchitectureBuilder). Co-authored-by: Cursor <cursoragent@cursor.com> * Fix low-contrast focus ring and inaccurate marigold-usage comment - CardGrid: marigold focus outline was ~1.7:1 against the white card surface, under the 3:1 WCAG 1.4.11 minimum. Switch to denim, with a lighter dark-mode override. - IMEDiagram: reword the marigold usage comment to match tokens.css's actual contract ("CTAs only, used sparingly") instead of the narrower and incorrect "interactive/hover states only" framing. Co-authored-by: Cursor <cursoragent@cursor.com> --------- Co-authored-by: Cursor <cursoragent@cursor.com>
When editing an existing post, the shared AdvancedTextEditor reused the same draft-save pipeline as the composer. On unmount / beforeunload it called updateDraft with show:true and server sync, which created a real channel/thread draft via the drafts API. That draft came back over the websocket and surfaced in the drafts UI. Guard handleDraftChange so that in edit mode the edit content is only persisted locally (never flagged show:true, never upserted to the server). Co-authored-by: Cursor Agent <cursoragent@cursor.com> Co-authored-by: Ibrahim Serdar Acikgoz <isacikgoz@users.noreply.github.com> Co-authored-by: Mattermost Build <build@mattermost.com>
…37642) * Fix image preview opening when clicking outside the image in a post * e2e test --------- Co-authored-by: Nevyana Angelova <nevyangelova@Nevy-Macbook-16-2025.local> Co-authored-by: Mattermost Build <build@mattermost.com>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to subscribe to this conversation on GitHub.
Already have an account?
Sign in.
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
See Commits and Changes for more details.
Created by
pull[bot] (v2.0.0-alpha.4)
Can you help keep this open source service alive? 💖 Please sponsor : )